﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebApplication.BaseClass
{
   
    public class RequestMessageBase :MessageBase,IRequestMessageBase
    {
        public virtual RequestMsgType MsgType
        {
            get { return RequestMsgType.Text; }
        }

        public long MsgId { get; set; }
    }

    

    public class RequestMessageText:RequestMessageBase,IRequestMessageBase
    {
        public override RequestMsgType MsgType
        {
            get
            {
                return RequestMsgType.Text;
            }
        }
        public string Content { get; set; }
    }

    public class RequestMsessageImage:RequestMessageBase,IRequestMessageBase
    {
        public override RequestMsgType MsgType
        {
            get
            {
                return RequestMsgType.Image;
            }
        }
        public string MediaId { get; set; }
        public string PicUrl { get; set; }
    }

    public class RequestMessageVoice:RequestMessageBase,IRequestMessageBase
    {
        public override RequestMsgType MsgType
        {
            get
            {
                return RequestMsgType.Voice;
            }
        }
        public string MediaId { get; set; }
        /// <summary>
        /// 语音格式：amr
        /// </summary>
        public string Format { get; set; }
        /// <summary>
        /// 语音书别结果，UTF8编码 
        /// </summary>
        public string Recognition { get; set; }
    }

    public class RequestMessageVido:RequestMessageBase,IRequestMessageBase
    {
        public override RequestMsgType MsgType
        {
            get
            {
                return RequestMsgType.Video;
            }
        }

        public string MediaId { get; set; }
        public string ThumbMediaId { get; set; }

    }

    public class RequestMessageLocation:RequestMessageBase,IRequestMessageBase
    {
        public override RequestMsgType MsgType
        {
            get
            {
                return RequestMsgType.Location;
            }
        }
        public double Location_X { get; set; }
        public double Location_Y { get; set; }

        public int Scale { get; set; }

        public string Label { get; set; }
    }

    public class RequestMessageLink:RequestMessageBase,IRequestMessageBase
    {
        public override RequestMsgType MsgType
        {
            get
            {
                return RequestMsgType.Link;
            }
        }
        public string Title { get; set; }
        public string Description { get; set; }
        public string Url { get; set; }
    }
}